/***
 * 价格策略管理模块js
 * 20151024
 */
$(function() {
	// 渲染页面-通用部分；
	commTemplUtil.initPage();
	// 渲染左侧菜单;
	commTemplUtil.initCommLeftMemu();
	
	var defaultPagingObj = {
			total : 20,
			pageSize : 10,
			page : 1
		};
	PAGE_DATA.pagingObj = $.extend(defaultPagingObj, PAGE_DATA.pagingObj);
	// 获取 第一页 分类数据;
	getClassifyData(1);
	
	// "新增" 按钮 初始化事件;
	bindAddPrice();
});

/*
*查询数据
*/
function getClassifyData(page) {
	var onClickObj = {
		onClick : function () {
			var clickPage = $(this).attr("data-page");
			getClassifyData(clickPage);
		}
	};
	var classifyTempl = _.template($('#item-template').html());
	
	// 获取 信息列表
	$.ajax({
		url : PAGE_CONFIG.requestUrl.listPriceStrategy,
		type : "get",
		data : {
			page : page + "",
			pageSize : PAGE_DATA.pagingObj.pageSize,
		},
		success : function (result) {
			setClassifyData(result.data, classifyTempl);
			
			//  更新翻页控件
			var tmpConf = $.extend(result.pagingConfData, onClickObj);
				commTemplUtil.initPaging("#comm-paging", tmpConf);

		},
		error : function () {},
	});
}

function bindAddPrice(){
	$("#add-price-game").click(function(){
        var d = dialog({
            title: '添加价格策略',
            content: '<form method="post" id="form"><div class="dialog-div"><div class="price-game-name"><span class="game-text">价格策略名称：</span><input type="text" name="name" id="name" class="required" maxlength="30"></div><div class="price-game-name"><span class="game-text">价格策略：</span><input type="text" name="price" id="price"  maxlength="10" placeholder="请输入[0]到[1]之间的值, 例: 0.95。" ></div><div class="prompt-text" id="tip">提示：价格策略是您对采购商的折扣信息（格式如：0.95），请认真填写。</div><div class="price-game-btn"><div class="btn btn-gray btn-w140x40 remove"  i="close">取消</div><div class="btn btn-warn btn-w140x40" id="addsub">提交</div></div></div></form>',
            onshow : function () {
        		var that = this;
        		
        		// 新增分类-提交
				$("#addsub").on("click", function () {
					//表单验证规则
	        		var valiForm = $("#form").validate({
	        		        rules : {
	        		            name : "required",
	        		            price : {
	        		                required : true,
	        		                number : true,
	        		                range : [0, 1]
	        		            }
	        		        },
	        		        errorPlacement : function (error, element) {
	        		            if (element.attr("type") == "text") {
	        		                element.after($("<div class='error-line'  align='center'/>").append(error));
	        		            }
	        		        },
	        		        messages : {
	        		            price : {
	        		                range : "价格策略是{0}到{1}之间的值，如: 0.95。"
	        		            }
	        		        }
	        		    });
	        		
	        		//验证表单
	        		var flag = valiForm.form();
	        		if (!flag) {
	        			return false;
	        		}
	        		
	        		var form = $("#form");

	        		var name = form.find("input[name='name']").val();
	        		var price = form.find("[name='price']").val();
	        		
	        		//页面列表模板
	        		var templ = _.template($("#item-template").html());
	        		//提交请求
	        		$.ajax({
	        			url : PAGE_CONFIG.requestUrl.addPriceStrategy,
	        			type : "post",
	        			data : {
	        				name : name,
	        				price : price,
	        				_token : COMM_DATA.csrfToken
	        			},
	        			success : function (result) {
	        				//响应
	        				setClassifyData(result.data, templ);
	        				that.remove();
	        			},
	        			error : function () {
	        				that.remove();
	        				
	        				//错误信息框模板
	        				var errorObj1 = _.template($('#item-error').html());
	        				var errorTip = dialog({
	        					title: '注意',
	        					content: errorObj1
	        				});
	        				errorTip.showModal();
	        				$("#ok").click(function() {
	        					errorTip.remove();
	        				});
	        			}
	        		});
				});
        		
			}
            
        });
        d.showModal();
    });
}

/***
 * 页面填充数据后, 绑定事件;
 */
function bindEvents(htmlObj) {

	var commBody = $("#commTabs_1_body");
	var classifyTempl = _.template($('#item-template').html());

	// 删除
	commBody.find(".sel-edit-del").on("click", function () {
		var editPirceTempl = _.template($("#add_price_templ").html());
		var priceId = $(this).parents("ul").attr("data-id");
		
		//确认框模板
		var confirmObj1 = _.template($('#item-confirm').html());
		var dia = dialog({
			title: '注意',
			content: confirmObj1
		});
		dia.showModal();
		
		$("#tj").on("click", function(event) {
			$.ajax({
				url: PAGE_CONFIG.requestUrl.delPriceStrategy,
				type: "delete",
				data: {
					id: priceId,
					_token: COMM_DATA.csrfToken
				},
				success: function(result) {
					//响应
    				setClassifyData(result.data, classifyTempl);
    				dia.remove();
				},
				error: function() {
					dia.remove();
					
					//错误信息框模板
					var errorObj1 = _.template($('#item-error').html());
					var errorTip = dialog({
						title: '注意',
						content: errorObj1
					});
					errorTip.showModal();
					$("#ok").click(function() {
						errorTip.remove();
					});
				}
			});
			$(this).unbind( event );
		});
		$(".remove").click(function() {
			dia.remove();
		});
	});

	// 编辑,
	commBody.find(".editor-price-game").on("click", function () {

		var editPirceTempl = _.template($("#add_price_templ").html());
		var priceId = $(this).parents("ul").attr("data-id");
		//var currentPage = $("#comm-paging").attr("current-page");

		$.ajax({
			url : PAGE_CONFIG.requestUrl.queryPriceByid,
			type : "get",
			data : {
				id : priceId
			},
			success : function (result) {
				
				var editPirceTemplHtml = editPirceTempl(result.data);
				var editDialog = dialog({
						title : '编辑价格策略',
						id : "edit-classify-dialog",
						content : editPirceTemplHtml,
						onshow : function () {
							var that = this;

							// 编辑-提交
							$("#edtsub").on("click", function () {
								//表单验证规则
								var valiForm = $("#form").validate({
								        rules : {
								            name : "required",
								            price : {
								                required : true,
								                number : true,
								                range : [0, 1]
								            }
								        },
								        errorPlacement : function (error, element) {
								            if (element.attr("type") == "text") {
								                element.after($("<div class='error-line'  align='center'/>").append(error));
								            }
								        },
								        messages : {
								            price : {
								                range : "价格策略是{0}到{1}之间的值，如: 0.95。"
								            }
								        }
								    });
								
								//验证表单
								var flag = valiForm.form();
								if (!flag) {
									return false;
								}
								
								var form = $("#form");

								var id = form.find("input[name='id']").val();
								var name = form.find("input[name='name']").val();
								var price = form.find("[name='price']").val();
								
								//页面列表模板
								var templ = _.template($("#item-template").html());
								
								//提交请求
								$.ajax({
									url : PAGE_CONFIG.requestUrl.editPriceStrategy,
									type : "put",
									data : {
										id:id,
										name : name,
										price : price,
										_token : COMM_DATA.csrfToken
									},
									success : function (result) {
										//响应
										setClassifyData(result.data, templ);
										that.remove();
									},
									error : function () {
										that.remove();
										
										//错误信息框模板
										var errorObj1 = _.template($('#item-error').html());
										var errorTip = dialog({
											title: '注意',
											content: errorObj1
										});
										errorTip.showModal();
										$("#ok").click(function() {
											errorTip.remove();
										});
									}
								});
							});

						}
					});
				editDialog.showModal();
			},
			error : function () {
				//错误信息框模板
				var errorObj1 = _.template($('#item-error').html());
				var errorTip = dialog({
					title: '注意',
					content: errorObj1
				});
				errorTip.showModal();
				$("#ok").click(function() {
					errorTip.remove();
				});
			}
		});

		return false;
	});
}

/**
 * 生成-信息列表,
 */
function setClassifyData(data, templ) {
	var classifyTemplHtml = templ(data);
	$("#commTabs_1_body").html(classifyTemplHtml);
	bindEvents(templ);
	
	
};